// @日期：2018年9月8日
// @描述：用来显示用户相关信息的通用组件
//       使用需要引入personalInfo.css

function setAttributes(element, obj) {
    // @参数:
    //      element:目标dom对象
    //      obj:二维数组，第一层代表attribute的个数，第二层代表对应attribute的键值
    // @批量设置属性
    for (let i = 0; i < obj.length; i++) {
        element.setAttribute(obj[i][0], obj[i][1])
    }
}

layui.define(['layer', 'response', 'element'], function (exports) {
    var response = layui.response,
        layer = layui.layer,
        element = layui.element;
    var obj = {
        initFramwork: function (containerDivId) {
            // @参数：containerDivId（用来盛放该组建的外层div id）
            // @类方法：创建个人信息模块显示框架
            var mainDiv = document.getElementById(containerDivId);

            var backgroundDiv = document.createElement("div"); //创建最底层白的背景
            backgroundDiv.setAttribute("class", "personal-background")

            //创建个人信息Div
            var infoDiv = document.createElement("div");
            infoDiv.setAttribute("class", "personal-info layui-row");

            var imgDiv = document.createElement("div"); //会员照片展示
            imgDiv.setAttribute("class", "personal-picture-container layui-col-md3");
            var img = document.createElement("img");
            img.setAttribute("class", "personal-picture");
            img.setAttribute("src", "../../img/user/pic1.jpg")
            imgDiv.appendChild(img);
            infoDiv.appendChild(imgDiv);

            var nameRankDiv = document.createElement("div"); //会员姓名以及等级
            nameRankDiv.setAttribute("class", "personal-name layui-col-md5");
            var nameP = document.createElement("p");
            nameP.innerText = "未登录";
            setAttributes(nameP, [
                ["id", "userName"],
                ["class", "personal-name-font"]
            ]);
            var rankP = document.createElement("p");
            rankP.innerText = "会员等级";
            setAttributes(rankP, [
                ["id", "userRank"],
                ["class", "personal-rank-font"]
            ]);
            nameRankDiv.appendChild(nameP);
            nameRankDiv.appendChild(rankP);
            infoDiv.appendChild(nameRankDiv);

            var logoutDiv = document.createElement("div"); //会员登出
            logoutDiv.setAttribute("class", "personal-logout layui-col-md4")
            infoDiv.appendChild(logoutDiv);
            var logout = document.createElement("button");
            setAttributes(logout, [
                ["class", "layui-btn"],
                ["style", "width:80%"],
                ["id", "personalBtn"]
            ]);
            logout.innerText = "登入"
            logoutDiv.appendChild(logout);
            infoDiv.appendChild(logoutDiv);
            backgroundDiv.appendChild(infoDiv);
            //个人信息Div结束

            //酒店信息展示
            //酒店信息展示结束


            mainDiv.appendChild(backgroundDiv);

            this.activeLogic();

        },

        activeLogic: function () {
            // 启动页面逻辑
            $(document).ready(function () {
                //测试用代码
                console.log("设置cookie测试")
                $.cookie("username", "Brickea", {
                    expires: 7
                });
                $.cookie("rmbUser", "true", {
                    expires: 7
                });
                //测试用代码

                //获取cookie的用户信息

                console.log("当前cookie ");
                console.log(response.getLocalCookies("username"));
                if ($.cookie("rmbUser") == "true") {
                    // 如果已经登陆
                    var username = $.cookie("username"); //获取用户姓名
                    $("#personalName").innerText = $.cookie("username");
                    //发送请求获取用户券个数以及等级
                    $.ajax({
                        url: urlHead,
                        type: "POST",
                        data: {
                            "username": username,
                            "src": 4
                        },
                        dataType: "json",
                        success: function (res) {
                            $("#personalRank").innerText = res.userRank; //更新用户等级
                            $("#personalVoucher").innerText = res.userVoucher; //更新用户兑换券个数
                            $("#exchangeRate").innerText = res.userExchangeRate; //更新当前兑换比例
                        },
                        error: function () {
                            //未获取到信息则跳转重新登陆
                            layer.msg("获取用户信息失败，即将为您跳转", {
                                icon: 5
                            });
                            setTimeout(() => {
                                location.replace("../user/login_by_username.html");
                            }, 2000);
                        }
                    });
                } else {
                    // 用户未登录
                    var url = window.location.href;
                    if (url.indexOf("exchangeGoodsDetail") >= 0) {
                        //在详情页则跳转到登录页
                        console.log("未登录跳转")
                        layer.msg("用户未登录，即将跳转到登陆页面", {
                            icon: 5
                        });
                        // setTimeout(() => {
                        //     location.replace("../user/login_by_username.html");
                        // }, 2000);
                    } else {
                        console.log("不跳转")
                        // 不在详情页则改变登出button为登陆
                        $("#personalBtn").attr("class", "layui-btn");
                        $("#personalBtn").innerText = "登陆";
                    }
                }
            });
        }


    };
    // 输出personalInfo接口
    exports('personalInfo', obj);
});